RAIS  3.2
C:/Projekte/RAIS/Specific Masks/EditDataRoles_New_Update1.aspx.cs
Go to the documentation of this file.
00001 
00028 using System;
00029 using System.Data;
00030 using System.Configuration;
00031 using System.Collections;
00032 using System.Collections.Generic;
00033 using System.Web;
00034 using System.Web.Security;
00035 using System.Web.UI;
00036 using System.Web.UI.WebControls;
00037 using System.Web.UI.WebControls.WebParts;
00038 using System.Web.UI.HtmlControls;
00039 
00040 using RAIS;
00041 using RAIS.Common.UserManagement;
00042 using RAIS.Common.DynamicMaskManagement;
00043 //using RAIS.ApplicationLogicLayer;
00044 
00045 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>;
00046 using DataRoleAttributes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRoleAttribute>;
00047 using Regions = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Region>;
00048 using Districts = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.District>;
00049 using Facilities = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Facility>;
00050 
00051 namespace RAIS.UI.SpecificMasks
00052 {
00056     public partial class EditDataRoles_New_Update1 : System.Web.UI.Page
00057     {
00061         enum EditDataRoles_PageMode
00062                 {
00063                         viewRoles,
00064                         addRole,
00065                         editRole
00066                 };
00067                 //*********************************************************************
00068                 #region Event handlers
00069         protected void Page_PreLoad(object sender, EventArgs e)
00070         {
00071             RAIS.UI.Common.PageManagement.TrimTextBoxValues(this);
00072         }
00083         protected void Page_Load(object sender, EventArgs e)
00084         {
00085                         this.Response.Cache.SetNoStore();
00086                         if (this.CurrentUser == null)
00087                                 UI.Common.AccessManagement.SignOut(this);
00088                         this.LBLresult.Text = string.Empty;
00089 
00090                         if (!this.IsPostBack)
00091                         {
00092                 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_DATA_ROLE.Replace("'", "\\'")));
00093                 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name;
00094 
00095                                 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection);
00096 
00097                                 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles;
00098 
00099                                 UI.Common.PageManagement.InitializePage(this, this.TreeView1);
00100 //                              this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest);
00101                                 this.ShowRole();
00102                         }
00103             UI.Common.PageManagement.InitHelpMainMenu(LBTNdefault);
00104         }
00105         protected void Page_Init(object sender, EventArgs e)
00106         {
00107             Common.PageManagement.SetScrolableListBox(LBdmrolename, this, true);
00108         }
00119                 protected void LBdmrolename_SelectedIndexChanged(object sender, EventArgs e)
00120                 {
00121                         this.SavedDataRoleSelection = this.LBdmrolename.SelectedValue;
00122                         this.EnableDisableEditDelete();
00123                         this.ShowRole();
00124                 }
00131                 protected void BTNadd_Click(object sender, EventArgs e)
00132                 {
00133                         this.ClearRoleData();
00134                         this.CreateTemporaryRole();
00135                         this.Modified = true;
00136                         this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.addRole;
00137                 }
00145                 protected void BTNedit_Click(object sender, EventArgs e)
00146                 {
00147                         this.Modified = true;
00148                         this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.editRole;
00149                 }
00156                 protected void BTNdelete_Click(object sender, EventArgs e)
00157                 {
00158                         this.DeleteSelectedRole();
00159                         this.EnableDisableEditDelete();
00160                         this.ShowRole();
00161                 }
00169                 protected void BTNsave_Click(object sender, EventArgs e)
00170                 {
00171                         if (this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.addRole)
00172                         {
00173                                 this.AddNewRole();
00174                         }
00175                         else
00176                         {
00177                                 this.GetDataRoleFromMaskControls();
00178                                 this.SaveRole();
00179                         }
00180                         this.EnableDisableEditDelete();
00181                 }
00189                 protected void BTNdiscard_Click(object sender, EventArgs e)
00190                 {
00191                         this.ClearRoleData();
00192                         this.ShowRole();
00193 
00194                         this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles;
00195                         this.Modified = false;
00196 
00197                         UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection);
00198                         this.EnableDisableControls();
00199                 }
00206         protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
00207         {
00208             UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1);
00209         }
00216         protected void LBTNlogout_Click(object sender, EventArgs e)
00217         {
00218             UI.Common.AccessManagement.SignOut(this);
00219         }
00220         #endregion Event handlers
00221                 //*********************************************************************
00222                 #region Private helper methods
00223 
00229                 void ShowRole()
00230                 {
00231                         if (this.SelectedRole == null)
00232                         {
00233                                 ClearRoleData();
00234                                 return;
00235                         }
00236                         else
00237                         {
00238                 this.TXTrolename.Text = this.SelectedRole.Name;
00239                 // Get protector
00240                 Protector protector =
00241                     ApplicationLogicLayer.DynamicMaskManagement.GetProtector(
00242                           "Data Role"
00243                         , this.SelectedRole.ID);
00244 
00245                 if (protector != null)
00246                 {
00247                     this.BTNedit.Attributes.Add("onclick", string.Format("javascript: alert('{0}'); return false;", protector.RenameMessage.Replace("'", "\\'")));
00248                     this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: alert('{0}'); return false;", protector.DeleteMessage.Replace("'", "\\'")));
00249                 }
00250                 else
00251                 {
00252                     this.BTNedit.Attributes.Remove("onclick");
00253                     this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_DATA_ROLE.Replace("'", "\\'")));
00254                 }
00255                         }
00256                 }
00260                 void ClearRoleData()
00261                 {
00262                         this.TXTrolename.Text = string.Empty;
00263                 }
00267                 private void DeleteSelectedRole()
00268                 {
00269                         DataRole selectedRole = this.SelectedRole;
00270 
00271                         if (selectedRole != null)
00272                         {
00273                                 string returnMessage = string.Empty;
00274                                 bool success = ApplicationLogicLayer.UserManagement.RemoveDataRole(selectedRole, ref returnMessage);
00275                                 this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG] = null; //for resetting
00276                                 this.SavedDataRoleSelection = (this.LBdmrolename.SelectedIndex == 0)
00277                                         ? string.Empty
00278                                         : this.LBdmrolename.Items[this.LBdmrolename.SelectedIndex - 1].Value;
00279                                 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection);
00280                                 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult,
00281                                                                                                                                         returnMessage,
00282                                                                                                                                         success);
00283                         }
00284                 }
00288                 private void CreateTemporaryRole()
00289                 {
00290                         DataRole tempRole = new DataRole();
00291                         this.Session[UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] = tempRole;
00292                 }
00297                 private bool AddNewRole()
00298                 {
00299                         string validationMessage = string.Empty;
00300                         bool success = this.ValidateNewDataRole(this.TXTrolename.Text, ref validationMessage);
00301 
00302                         if (success)
00303                         {
00304                                 success = ApplicationLogicLayer.UserManagement.AddDataRole(this.TXTrolename.Text, ref validationMessage);
00305                                 if (success)
00306                                 {
00307                                         DataRole tempRole = this.SelectedRole;
00308                                         this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] = null;
00309                                         UI.Common.UserManagement.InitializeDataRoles(this);
00310 
00311                                         DataRoles dataRoles = (DataRoles)this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG];
00312                                         DataRole savedRole = dataRoles[this.TXTrolename.Text];
00313 
00314                                         foreach (DataRoleAttribute attribute in tempRole.AddedAttributes.Values)
00315                                         {
00316                                                 success = savedRole.AddAttribute(attribute, ref validationMessage);
00317                                                 if (!success)
00318                                                         break;
00319                                         }
00320                                 }
00321 
00322                                 if (success)
00323                                 {
00324                                         this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles;
00325                                         this.Modified = false;
00326 
00327                                         this.SavedDataRoleSelection = this.TXTrolename.Text;
00328                                         UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection);
00329                                         this.EnableDisableControls();
00330                                 }
00331                         }
00332                         RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult,
00333                                                                                                                                 validationMessage,
00334                                                                                                                                 success);
00335                         return success;
00336                 }
00341                 private bool SaveRole()
00342                 {
00343                         string returnMessage = string.Empty;
00344                         bool success = true;
00345 
00346                         if (!this.Modified)
00347                         {
00348                                 returnMessage = RAIS.Common.Messages.DATA_ROLE_NO_MODIFICATION;
00349                                 success = false;
00350                         }
00351                         else
00352                         {
00353                                 success = ApplicationLogicLayer.UserManagement.SaveDataRole(this.SelectedRole, ref returnMessage);
00354                                 if (success)
00355                                 {
00356                                         this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles;
00357                                         this.Modified = false;
00358 
00359                                         this.SavedDataRoleSelection = this.TXTrolename.Text;
00360                                         UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection);
00361                                         this.EnableDisableControls();
00362                                 }
00363                         }
00364                         RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult,
00365                                                                                                                                 returnMessage,
00366                                                                                                                                 success);
00367                         return success;
00368                 }
00372                 private void GetDataRoleFromMaskControls()
00373                 {
00374                         if (this.SelectedRole != null)
00375                         {
00376                                 this.SelectedRole.Name = TXTrolename.Text;
00377                         }
00378                 }
00387                 bool ValidateNewDataRole(string roleName, ref string returnMessage)
00388                 {
00389                         DataRoles funcitonRoles = (DataRoles)this.Session[UI.Common.Constants.DATA_ROLES_TAG];
00390                         if (funcitonRoles.ContainsKey(roleName))
00391                         {
00392                                 returnMessage = RAIS.Common.Messages.DATA_ROLE_EXISTS;
00393                                 return false;
00394                         }
00395                         else
00396                                 if (roleName.Length == 0)
00397                                 {
00398                                         returnMessage = RAIS.Common.Messages.NAME_IS_EMTPY;
00399                                         return false;
00400                                 }
00401                                 else
00402                                         return true;
00403                 }
00407                 private void EnableDisableControls()
00408                 {
00409                         this.LBdmrolename.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles;
00410 
00411                         this.LBdma.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles;
00412                         this.BTNadd.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles;
00413                         this.BTNsave.Enabled = this.Modified;
00414                         this.BTNdiscard.Enabled = this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles;
00415 
00416                         this.EnableDisableEditDelete();
00417 
00418                         this.TXTrolename.Enabled = !(this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles);
00419 
00420                         UI.Common.UserManagement.EnableCommonControls(this, this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles);
00421 
00422                         this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT;
00423 
00424                         if (this.Modified)
00425                 this.BTNdiscard.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DISCARD_QUESTION_ROLE.Replace("'", "\\'")));
00426                         else
00427                                 this.BTNdiscard.Attributes.Remove("onclick");
00428 
00429                         if (this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles)
00430                                 this.SetFocus(this.LBdmrolename);
00431                         else
00432                                 this.SetFocus(this.TXTrolename);
00433                 }
00437                 void EnableDisableEditDelete()
00438                 {
00439                         this.BTNedit.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles && this.SelectedRole != null;
00440                         this.BTNdelete.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles && this.SelectedRole != null;
00441                 }
00442                 #endregion Private helper methods
00443                 //*********************************************************************
00444                 #region Private helper properties
00445 
00448                 private DataRole SelectedRole
00449                 {
00450                         get
00451                         {
00452                                 if (this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] != null)
00453                                         return (DataRole)this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG];
00454                                 else
00455                                 {
00456                                         DataRoles dataRoles = (DataRoles)this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG];
00457                                         if (dataRoles != null && dataRoles.ContainsKey(this.LBdmrolename.SelectedValue))
00458                                                 return dataRoles[this.LBdmrolename.SelectedValue];
00459                                         else
00460                                                 return null;
00461                                 }
00462                         }
00463                 }
00467                 EditDataRoles_PageMode CurrentEditDataRoles_PageMode
00468                 {
00469                         get
00470                         {
00471                                 if (this.Session[UI.Common.Constants.DATA_ROLE_EDIT_MODE_TAG] != null)
00472                                 {
00473                                         return (EditDataRoles_PageMode)this.Session[UI.Common.Constants.DATA_ROLE_EDIT_MODE_TAG];
00474                                 }
00475                                 else
00476                                         return EditDataRoles_PageMode.viewRoles;
00477                         }
00478                         set
00479                         {
00480                                 string message;
00481                                 switch (value)
00482                                 {
00483                                         case EditDataRoles_PageMode.addRole: message = RAIS.UI.Common.Constants.ADDING_NEW_DATA_ROLE; break;
00484                                         case EditDataRoles_PageMode.editRole: message = RAIS.UI.Common.Constants.EDITTING_EXISTING_DATA_ROLE; break;
00485 
00486                                         default:
00487                                                 this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] = null;
00488                                                 message = string.Empty;
00489                                                 break;
00490                                 }
00491                                 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, message, true);
00492                                 this.Session[UI.Common.Constants.DATA_ROLE_EDIT_MODE_TAG] = value;
00493                                 this.EnableDisableControls();
00494                         }
00495                 }
00499                 bool Modified
00500                 {
00501                         get
00502                         {
00503                                 if (this.SelectedRole != null)
00504                                         return this.SelectedRole.Modified;
00505                                 else
00506                                         return false;
00507                         }
00508                         set
00509                         {
00510                                 if (this.SelectedRole != null)
00511                                         this.SelectedRole.Modified = value;
00512 
00513                                 if (!value)
00514                                 {
00515                                         this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG] = null;
00516                                 }
00517                         }
00518                 }
00522         protected UserData CurrentUser
00523         {
00524             get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; }
00525         }
00529                 private string SavedDataRoleSelection
00530                 {
00531                         get
00532                         {
00533                                 if (this.Session[RAIS.UI.Common.Constants.DATA_ROLE_SAVED_SELECTION_TAG] != null)
00534                                         return this.Session[RAIS.UI.Common.Constants.DATA_ROLE_SAVED_SELECTION_TAG].ToString();
00535                                 else
00536                                         return string.Empty;
00537                         }
00538                         set
00539                         {
00540                                 this.Session[RAIS.UI.Common.Constants.DATA_ROLE_SAVED_SELECTION_TAG] = value;
00541                         }
00542                 }
00543                 #endregion Private helper properties
00544         }
00545 }